// #include <iostream>
// #include<filesystem>
// #include<fstream>
// #include<string>
// #include<set>
//
// using namespace std;
// //c++文件系统
//
// void test_file_system() {
//     //1目录操作
//
//     //1.错误代码
//     error_code temp;
//     //创建单层目录
//     filesystem::create_directory("baby",temp);
//     cout << "错误信息" << temp.message() << endl;
//     //创建多级目录
//     filesystem::create_directories("a/b/c",temp);
//     cout << "错误信息" << temp.message() << endl;
//
//
//     //2 路径操作
//     filesystem::path url = filesystem::current_path();
//     cout << url << endl;
//     cout << url/"baby" << endl;
//     cout << url.string() << endl;
//     cout << url.root_directory() << endl;
//     cout << url.root_name() << endl;
//     cout << url.relative_path() << endl;
//
//     filesystem::path url_img("img");
//
//     cout << url_img << endl;
//
//
//     //3 文件类型操作
//
//     filesystem::create_directory("./test",temp);
//     fstream file("./test/file",ios::out | ios::trunc);
//     filesystem::file_status info = filesystem::status("./test/file");
//     switch (info.type()) {
//         case filesystem::file_type::regular: {
//             cout << "磁盘文件" <<endl;
//             break;
//         }
//         case  filesystem::file_type::directory: {
//             cout << "路径" <<endl;
//             break;
//         }
//         case filesystem::file_type::unknown: {
//             cout <<  "未知类型" <<endl;
//             break;
//         }
//             default: {
//             cout <<"文件类型错误" <<endl;
//
//         }
//     }
//
//
// }
//
// void test_print_directory() {
//     //4.遍历目录操作
//     //遍历当前 制定目录下的所有文件
//
//     //遍历一层目录
//     filesystem::path url("./");
//     set<filesystem::path> files;
//     for (filesystem::directory_iterator end,begin(url);begin!=end;++begin) {
//         // if (!filesystem::is_directory(begin->path())) {
//             files.insert(begin->path());
//         // }
//     }
//
//     for (auto& file:files) {
//         cout << file.string() << endl;
//     }
//
// }
//
// void test_print_all_file() {
//     filesystem::path url("./");
//     set<filesystem::path> files;
//     for (filesystem::recursive_directory_iterator end,begin(url);begin!=end;++begin) {
//         files.insert(begin->path());
//     }
//
//     for (auto& file:files) {
//         cout << file.string() << endl;
//     }
//
//
// }
//
//
// int main() {
//     // test_file_system();
//     // test_print_directory();
//     test_print_all_file();
//     return 0;
// }